const fs = require('fs');
const path = require('path');
const childProcess = require('child_process');
const { exec } = require('child_process');
console.log('\x1b[32m%s\x1b[0m', '开始执行 ts api 目录生成\n');

exec('npx ladder', (error, stdout, stderr) => {
    if (error) {
        console.error('\x1b[32m%s\x1b[0m', `Error: ${error.message}`);
        return;
    }
    if (stderr) {
        console.error('\x1b[32m%s\x1b[0m', `stderr: ${stderr}`);
        return;
    }
    console.log('\x1b[32m%s\x1b[0m', stdout);

    // 执行删除操作
    deleteApiSpecsPaths();
});
// 获取当前分支名
function getCurrentBranch() {
    return childProcess.execSync('git rev-parse --abbrev-ref HEAD').toString().trim();
}

// 删除 ts-codegen.config.json 文件内 apiSpecsPaths 数组的内容
function deleteApiSpecsPaths() {
    const configPath = path.join(__dirname, '../ts-codegen.config.json');

    try {
        const configContent = JSON.parse(fs.readFileSync(configPath, 'utf8'));
        // 判断是否是 release 分支
        if (getCurrentBranch() === 'release') {
            configContent.apiSpecsPaths = [];
            fs.writeFileSync(configPath, JSON.stringify(configContent, null, 2));
            console.log('\x1b[32m%s\x1b[0m', '已清理 ts-cdeogen.config.json 内容');
        } else {
            console.log('非 release 分支，不需要清理 ts-cdeogen.config.json 内容');
        }
    } catch (error) {
        console.log('\x1b[32m%s\x1b[0m', '读取或修改 ts-codegen.config.json 报错 :', error.message);
        console.error();
    }
}
